OpenXava - это фрейворк, облегчающий и значительно ускоряющий разработку приложений JavaEE/J2EE (прим. переводчика - OX реализует автоматическое построение динамического AJAX веб интерфейса, интегрированного с Базами Данных, на основе JPA Entities, используются аннотации для описания правил визуализации или правила визуализации могут быть описаны в XML файле).
В основе концепции фреймворка лежит идея использования аннотаций Java или XML-описаний бизнес-объектов с целью уменьшения рутинного программирования на Java. Философский девиз OpenXava - "Декларирование лучше кодирования" (..the more definition and less programming the better..).
Основная цель OX - создать за разработчика наиболее типовые блоки, используемые при разработке бизнес-приложений в то время, как разработчик продолжает иметь возможность при необходимости вести разработку своими средствами, как ему будет угодно.
Более подробную информацию о возможностях системы вы найдете на официальном сайте OpenXava
Ниже мы рассмотрим некоторые базовые концепции OpenXava.
Бизнес-компоненты (Business component)
В основании фундамента приложения OpenXava лежат бизнес-компоненты. В контекте OpenXava бизнес-компонент - это Java класс (поддерживается также версия в виде XML), содержащий всю информацию, необходимую для создания приложения, реализующего определенную бизнес-сущность (business concept). Например, вся информaция, которую система должна знать о бизнес-сущности "Счет" (invoice), будет определена в файле Invoice.java. В бизнес-компоненте вы можете определить:
Структуру данных.
Валидации - контроль вводимых значений (Validations), вычисления и в целом всю логику, связанную с реализуемым бизнес-понятием.
Допустимые представления (views), т.е. конфигурацию всех возможных пользовательских интерфейсов данного компонента.
Возможности создания табличных представления данных (представление данных в виде таблиц). Используются при навигации в больших массивах данных (paging), отчетах, экспорте в excel и т.д.
Объектно-реляционная проекция (Object-relational mapping). Включает информацию о таблицах базы данных, а также инструкции по преобразованию объектов вашего Java приложения в объекты БД.
Такая реализация хорошо подходит для командной работы в составе рабочих групп разработчиков, а также позволяет разрабатывать универсальные (generic) бизнес-компоненты, которые можно использовать для разных проектов.
Контроллеры (Controllers)
Бизнес-компоненты не предназначены для определения действий пользователя в приложении,этим занимаются контроллеры (controllers). Контроллеры определяются в файле xava/controllers.xml ваше проекта; в дополнение OpenXava имеет набор предопределенных контроллеров в OpenXava/xava/default-controllers.xml.
Контроллер - это набор действий (actions). Действие - это, фактически, кнопка или ссылка, по которой может перейти пользователь.
Контроллеры отделены от бизнес-компонентов по той причине, что один контроллер может быть присвоен (assigned) нескольким бизнес-компонентам. Например, контоллеры для выполнения CRUD операций, для печати в формате PDF или экспорта в текстовые файоы, и т.д. могут быть созданы один раз и затем многократно использованы такими компонентами, как invoices (счета), customers (клиенты), suppliers (поставщики) и т.д.
Приложение (Application)
Приложение OpenXava представляет собор набор модулей. Модуль связывает бизнес-компонент с одним или более контроллерами.
Каждый модуль приложения - собственно, то, что использует конечный пользователь. Обычно, но необязательно, модуль конфигурируется как портлет для использования внутри портала.
Структура проекта (Project structure)
Типовой проект OpenXava обычно состоит из следующих папок:
[root]: Здесь вы найдете build.xml (используется Ant для сборки и других операций с приложением OX).
src[source folder]: Содержит исходный код Java.
xava: Файлы XML files с конфигурацией приложения OpenXava. Самые главные из них - это application.xml и controllers.xml.
i18n: Поддержка интернационализации. Здесь находятся ресурсные файлы сообщений, используемых в приложении.
properties[source folder]: Файлы свойств (properties), являются частью конфигурации вашего приложения OX.
data: Здесь мы рекомендуем хранить SQL скрипты для создания таблиц базы данных вашего приложения OX.
web: Веб контент. Обычно, это файлы JSP (Java Server Pages), библиотеки (lib) и классы. Содержимое даной папки OX формирует автоматически, но, если необходимо, вы можете добавить свои JSP файлы или другие веб ресурсы.
Table of Contents
Глава 1: Обзор системы
Знакомство
OpenXava - это фрейворк, облегчающий и значительно ускоряющий разработку приложений JavaEE/J2EE (прим. переводчика - OX реализует автоматическое построение динамического AJAX веб интерфейса, интегрированного с Базами Данных, на основе JPA Entities, используются аннотации для описания правил визуализации или правила визуализации могут быть описаны в XML файле).В основе концепции фреймворка лежит идея использования аннотаций Java или XML-описаний бизнес-объектов с целью уменьшения рутинного программирования на Java. Философский девиз OpenXava - "Декларирование лучше кодирования" (..the more definition and less programming the better..).
Основная цель OX - создать за разработчика наиболее типовые блоки, используемые при разработке бизнес-приложений в то время, как разработчик продолжает иметь возможность при необходимости вести разработку своими средствами, как ему будет угодно.
Более подробную информацию о возможностях системы вы найдете на официальном сайте OpenXava
Ниже мы рассмотрим некоторые базовые концепции OpenXava.
Бизнес-компоненты (Business component)
В основании фундамента приложения OpenXava лежат бизнес-компоненты. В контекте OpenXava бизнес-компонент - это Java класс (поддерживается также версия в виде XML), содержащий всю информацию, необходимую для создания приложения, реализующего определенную бизнес-сущность (business concept). Например, вся информaция, которую система должна знать о бизнес-сущности "Счет" (invoice), будет определена в файле Invoice.java. В бизнес-компоненте вы можете определить:- Структуру данных.
- Валидации - контроль вводимых значений (Validations), вычисления и в целом всю логику, связанную с реализуемым бизнес-понятием.
- Допустимые представления (views), т.е. конфигурацию всех возможных пользовательских интерфейсов данного компонента.
- Возможности создания табличных представления данных (представление данных в виде таблиц). Используются при навигации в больших массивах данных (paging), отчетах, экспорте в excel и т.д.
- Объектно-реляционная проекция (Object-relational mapping). Включает информацию о таблицах базы данных, а также инструкции по преобразованию объектов вашего Java приложения в объекты БД.
Такая реализация хорошо подходит для командной работы в составе рабочих групп разработчиков, а также позволяет разрабатывать универсальные (generic) бизнес-компоненты, которые можно использовать для разных проектов.Контроллеры (Controllers)
Бизнес-компоненты не предназначены для определения действий пользователя в приложении,этим занимаются контроллеры (controllers). Контроллеры определяются в файле xava/controllers.xml ваше проекта; в дополнение OpenXava имеет набор предопределенных контроллеров в OpenXava/xava/default-controllers.xml.Контроллер - это набор действий (actions). Действие - это, фактически, кнопка или ссылка, по которой может перейти пользователь.
Контроллеры отделены от бизнес-компонентов по той причине, что один контроллер может быть присвоен (assigned) нескольким бизнес-компонентам. Например, контоллеры для выполнения CRUD операций, для печати в формате PDF или экспорта в текстовые файоы, и т.д. могут быть созданы один раз и затем многократно использованы такими компонентами, как invoices (счета), customers (клиенты), suppliers (поставщики) и т.д.
Приложение (Application)
Приложение OpenXava представляет собор набор модулей. Модуль связывает бизнес-компонент с одним или более контроллерами.Каждый модуль приложения - собственно, то, что использует конечный пользователь. Обычно, но необязательно, модуль конфигурируется как портлет для использования внутри портала.
Структура проекта (Project structure)
Типовой проект OpenXava обычно состоит из следующих папок: